package com.mtw.bbs.article.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mtw.bbs.article.pojo.entity.ArticleIndex;
import com.mtw.bbs.article.pojo.form.ArticleForm;
import com.mtw.bbs.article.pojo.vo.ArticleVo;
import com.mtw.bbs.article.pojo.vo.SimpleArticleVo;
import java.util.Collection;
import java.util.List;

/**
 * 文章
 */
public interface ArticleIndexService extends IService<ArticleIndex> {






    /**
     * 分页获取文章
     * @param page          分页对象
     * @param lqw            查询条件
     * @return              分页结果
     */
    Page<ArticleVo> getArticlePage(int page, int size, LambdaQueryWrapper<ArticleIndex> lqw);





    /**
     * 根据id获取简单的文章信息
     * @param ids               文章id
     * @return                  简单的文章信息
     */
    List<SimpleArticleVo> getSimpleArticle(Collection<String> ids);





    /**
     * 获取文章详情
     * @param id        文章id
     */
    ArticleVo getInfoById(String id);





    /**
     * 保存文章
     */
    String saveArticle(ArticleForm form);





    /**
     * 更新文章
     */
    boolean updateArticle(ArticleForm form);



    /**
     * 更新文章
     */
    boolean updateArticleByIds(LambdaUpdateWrapper<ArticleIndex> luw, Collection<String> ids);


    /**
     * 用户更新自己的文章
     */
    boolean updateArticleByAuthor(ArticleForm form);







    /**
     * 删除文章
     * @param ids               文章id集合
     * @return                  删除结果
     */
    boolean deleteArticle(Collection<String> ids);



    /**
     * 用户删除自己的文章
     * @param id            文章id
     * @return              删除结果
     */
    boolean deleteArticleByAuthor(String id);








}

